package com.tengfei.main.exam.service;



import com.tengfei.common.core.domain.PageQuery;
import com.tengfei.common.core.page.TableDataInfo;
import com.tengfei.main.exam.domain.bo.PaperBo;
import com.tengfei.main.exam.domain.bo.PaperQuQueryBo;
import com.tengfei.main.exam.domain.bo.PaperUserBo;
import com.tengfei.main.exam.domain.bo.PaperQuBo;
import com.tengfei.main.exam.domain.vo.PaperUserVo;
import com.tengfei.main.exam.domain.vo.PaperVo;

import java.util.Collection;
import java.util.List;

/**
 * 试卷Service接口
 *
 * @author tengfei
 * @date 2022-07-31
 */
public interface IPaperService {

    /**
     * 查询试卷
     */
    PaperVo queryById(Long examId);

    /**
     * 查询试卷列表
     */
    TableDataInfo<PaperVo> queryPageList(PaperBo bo, PageQuery pageQuery);

    /**
     * 修改试卷
     */
    Boolean insertByBo(PaperBo bo);

    /**
     * 修改试卷
     */
    Boolean updateByBo(PaperBo bo);

    /**
     * 校验并批量删除试卷信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids);

    TableDataInfo bindQuList(PaperQuQueryBo bo, PageQuery pageQuery);

    TableDataInfo unBindQuList(PaperQuQueryBo bo, PageQuery pageQuery);

    boolean updateQuScore(PaperQuBo bo);

    boolean addQuByQuBo(List<PaperQuBo> bos);

    boolean removeQuByQuBo(List<PaperQuBo> bos);

    TableDataInfo<PaperUserVo> bindUserList(PaperUserBo bo, PageQuery pageQuery);

    TableDataInfo<PaperUserVo> unBindUserList(PaperUserBo bo, PageQuery pageQuery);

    boolean insertBatchUserByBo(List<PaperUserBo> bos);

    boolean deleteBatchUserByBo(List<PaperUserBo> bos);

}
